home *** CD-ROM | disk | FTP | other *** search
/ Scene Storm / Scene Storm - Volume 1.iso / coding / c / amiexpress / source / ae / code / ax3.00 / useraccountedit.c < prev    next >
Encoding:
C/C++ Source or Header  |  1980-01-03  |  7.5 KB  |  263 lines

  1. #include "bbs.h"
  2.  
  3. extern char Xprlib[];
  4. extern char prototitle[];
  5. int UserAccountEdit(void)
  6. {
  7. int stat,option;
  8. char str[100],str2[100];
  9. extern char langtitle[];
  10. extern char lang[];
  11. struct User TUser;
  12. struct UserKeys TUserkeys;
  13. struct DiskObject *dobj;
  14. char **tooltypes;
  15. char *s;
  16. int i;
  17.  FOREVER {
  18.         if(Whence_The_Logon>=REMOTE_LOGON)
  19.         {
  20.         stat=CheckCarrier();
  21.         if(stat==FALSE) return(SLEEP_LOGOFF);
  22.         }
  23.  
  24.      /* FormFeed Line since user indiates he wants this option */
  25.  
  26.      if(User_keys.Userflags & USER_SCRNCLR) AEPutStr("\f");
  27.  
  28.         AEPutStr("\r\n");
  29.  
  30.         if(!(GET_BIT(ACS_EDIT_USER_NAME)))    AEPutStr("1. Disabled\r\n");
  31.      else {
  32.             sprintf(str,"1. Name     : %s\r\n",User.Name);
  33.             AEPutStr(str);
  34.         }
  35.  
  36.      if(!(GET_BIT(ACS_EDIT_USER_LOCATION)))    AEPutStr("2. Disabled\r\n");
  37.         else {
  38.          sprintf(str,"2. From     : %s\r\n",User.Location);
  39.             AEPutStr(str);
  40.         }
  41.  
  42.      if(!(GET_BIT(ACS_EDIT_PHONE_NUMBER)))    AEPutStr("3. Disabled\r\n");
  43.        else {
  44.          sprintf(str,"3. Phone    : %s\r\n",User.PhoneNumber);
  45.             AEPutStr(str);
  46.         }
  47.  
  48.      if(!(GET_BIT(ACS_EDIT_PASSWORD))) AEPutStr("4. Disabled\r\n");
  49.        else {
  50.          AEPutStr("4. Password : ENCRYPTED\r\n");
  51.         }
  52.  
  53.      sprintf(str,"5. NumLines : %d\r\n",User.LineLength);
  54.     AEPutStr(str);
  55.  
  56.      if(User.Sec_Bulletin>=ComputerEntries)
  57.          sprintf(str,"6. Computer : NOT VALID!\r\n",User.LineLength);
  58.         else
  59.         sprintf(str,"6. Computer : %s\r\n",ComputerTypes[User.Sec_Bulletin]);
  60.      AEPutStr(str);
  61.  
  62.           sprintf(str,"7. Scr Type : %s\r\n",langtitle);
  63.       AEPutStr(str);
  64.  
  65.     /* FormFeed Line since user indiates he wants this option */
  66.  
  67.      if(User_keys.Userflags & USER_SCRNCLR)
  68.         sprintf(str,"8. Scrn Clr : Y\r\n");
  69.     else
  70.         sprintf(str,"8. Scrn Clr : N\r\n");
  71.  
  72.     AEPutStr(str);
  73.  
  74.      if(GET_BIT(ACS_XPR_SEND) || GET_BIT(ACS_XPR_RECEIVE))
  75.     {
  76.     sprintf(str,"9. Protocol : %s\r\n",prototitle);
  77.     } else {
  78.     sprintf(str,"9. Disabled  \r\n");
  79.     }
  80.      AEPutStr(str);
  81.  
  82.      if(GET_BIT(ACS_FULLEDIT))
  83.      {
  84.          switch(User.EditorType)
  85.          {
  86.             case 0: strcpy(str,"10.Editor   : Prompt\r\n"); break;
  87.             case 1: strcpy(str,"10.Editor   : Line Editor\r\n"); break;
  88.             default: strcpy(str,"10.Editor   : FullScreen Editor\r\n"); break;
  89.          }
  90.      }
  91.      else           strcpy(str,"10.Disabled  \r\n");
  92.      AEPutStr(str);
  93.      AEPutStr("\r\n");
  94.  
  95.     AEPutStr("Which to change <CR>=QUIT ? ");
  96.  
  97.     stat=LineInput("",str,2,KEYBOARD_TIMEOUT);
  98.     if(stat<0)  return(stat);
  99.     if(strlen(str)==0)    {
  100.         AEPutStr("\r\n");
  101.         Save_Account(&User,&User_keys,0,0);
  102.         CheckUserOnLine(&User,0);
  103.         return(SUCCESS);
  104.     }
  105.     if(Whence_The_Logon>=REMOTE_LOGON) {
  106.         stat=CheckCarrier();
  107.         if(stat==FALSE)
  108.             return(SLEEP_LOGOFF);
  109.     }
  110.      option=atoi(str);
  111.     AEPutStr("\r\n");
  112.     switch(option) {
  113.         case 1:
  114.             if(!(GET_BIT(ACS_EDIT_USER_NAME)))
  115.                 break;
  116.             Loop:
  117.             AEPutStr("Name: ");
  118.             strcpy(str,User.Name);
  119.             stat=LineInput(str,str,30,KEYBOARD_TIMEOUT);
  120.             if(stat<0)  return(stat);
  121.             if(!stricmp(User_keys.UserName,str)) break;
  122.             if(stat=CheckifNameAllowed(str))    goto Loop;
  123.             strcpy(str2,str);
  124.             AEPutStr("\r\nChecking for duplicate name...");
  125.             stat=CheckForAst(str2);
  126.             if(stat) {
  127.                 AEPutStr("No wildcards allow in a name.\r\n\r\n");
  128.                 goto Loop;
  129.             }
  130.             stat=Find_User_From_Name(1,str2,&TUser,&TUserkeys);
  131.             if(stat!=0)    {
  132.                 AEPutStr("Already in use!, try another.\r\n\r\n");
  133.                 goto Loop;
  134.             }
  135.             AEPutStr("Ok!\r\n");
  136.             strcpy(User.Name,str);
  137.             strupr(str);
  138.             strcpy(User_keys.UserName,str);
  139.             Save_Account(&User,&User_keys,0,0);
  140.             break;
  141.         case 2:
  142.             if(!(GET_BIT(ACS_EDIT_USER_LOCATION)))
  143.                 break;
  144.             AEPutStr("From: ");
  145.             strcpy(str,User.Location);
  146.             stat=LineInput(str,str,29,KEYBOARD_TIMEOUT);
  147.             if(stat<0)  return(stat);
  148.             if(strlen(str)==0)
  149.                 break;
  150.             strcpy(User.Location,str);
  151.             break;
  152.         case 3:
  153.             if(!(GET_BIT(ACS_EDIT_PHONE_NUMBER)))
  154.                 break;
  155.             AEPutStr("Phone: ");
  156.             strcpy(str,User.PhoneNumber);
  157.             stat=LineInput(str,str,13,KEYBOARD_TIMEOUT);
  158.             if(stat<0)  return(stat);
  159.             if(strlen(str)==0)
  160.                 break;
  161.             strcpy(User.PhoneNumber,str);
  162.             break;
  163.         case 4:
  164.             if(!(GET_BIT(ACS_EDIT_PASSWORD))) break;
  165.             AEPutStr("Password: ");
  166.             AEClearMem(GSTR1,32);
  167.             stat=LineInput(GSTR1,GSTR1,32,KEYBOARD_TIMEOUT);
  168.             if(stat<0) { return(stat); }
  169.             if(strlen(GSTR1)==0) break;
  170.             AECryptCpy(User.PassKey,GSTR1);
  171.             break;
  172.  
  173.  
  174.         case 5:
  175.             do {
  176.                 stat=NumberOfLinesTest();
  177.                 if(stat<0)  return(stat);
  178.             } while(stat==0);
  179.             break;
  180.         case 6:
  181.             if(stat=ChooseComputer())
  182.                 if(stat<0)  return(stat);
  183.             break;
  184.           case 7:
  185.                  i=1;
  186.                  
  187.          sprintf(GSTR1,"%sScreenTypes",Cmds->BBSLoc);
  188.                  dobj=GetDiskObject(GSTR1);
  189.                  if(dobj)
  190.                  {
  191.                     AEPutStr("\r\n");
  192.                     tooltypes=dobj->do_ToolTypes;
  193.                    sprintf(GSTR2,"TITLE.%d",i);
  194.                    while(s=FindToolType(tooltypes,GSTR2))
  195.                    {
  196.                       sprintf(GSTR2,"%d> %s\r\n",i,s);
  197.                       AEPutStr(GSTR2);
  198.                       i +=1;
  199.                       sprintf(GSTR2,"TITLE.%d",i);
  200.                    }
  201.                    AEPutStr("\r\n   Type >: ");
  202.                    LineInput("",GSTR2,5,KEYBOARD_TIMEOUT);
  203.                    sprintf(GSTR1,"TYPE.%d",atoi(GSTR2));
  204.                    if(s=FindToolType(tooltypes,GSTR1))
  205.                    {
  206.                       strcpy(lang,s); sprintf(GSTR1,"TITLE.%d",atoi(GSTR2));
  207.                  
  208.                       if(s=FindToolType(tooltypes,GSTR1))
  209.                       strcpy(langtitle,s);
  210.                       User.ScreenType=atoi(GSTR2)-1;
  211.                    } FreeDiskObject(dobj);
  212.                  }else User.ScreenType=0;
  213.                  break;
  214.           case 9:
  215.                  i=1;
  216.                  if(!GET_BIT(ACS_XPR_SEND) && !GET_BIT(ACS_XPR_RECEIVE)) break;
  217.          sprintf(GSTR1,"%sProtocols/XprTypes",Cmds->BBSLoc);
  218.                  dobj=GetDiskObject(GSTR1);
  219.                  if(dobj)
  220.                  {
  221.                     AEPutStr("\r\n");
  222.                     tooltypes=dobj->do_ToolTypes;
  223.                    sprintf(GSTR2,"TITLE.%d",i);
  224.                    while(s=FindToolType(tooltypes,GSTR2))
  225.                    {
  226.                       sprintf(GSTR2,"%d> %s\r\n",i,s);
  227.                       AEPutStr(GSTR2);
  228.                       i +=1;
  229.                       sprintf(GSTR2,"TITLE.%d",i);
  230.                    }
  231.                    AEPutStr("\r\n   Type >: ");
  232.                  
  233.                    LineInput("",GSTR2,5,KEYBOARD_TIMEOUT);
  234.                    sprintf(GSTR1,"LIBRARY.%d",atoi(GSTR2));
  235.                    if(s=FindToolType(tooltypes,GSTR1))
  236.                    {
  237.                       strcpy(Xprlib,s); sprintf(GSTR1,"TITLE.%d",atoi(GSTR2));
  238.                  
  239.                       if(s=FindToolType(tooltypes,GSTR1))
  240.                       strcpy(prototitle,s);
  241.                       User.XferProtocol=atoi(GSTR2)-1;
  242.                    } FreeDiskObject(dobj);
  243.                  }else User.XferProtocol=0;
  244.                  GetProtocol();
  245.                  break;
  246.  
  247.         case 8:
  248.          /* FormFeed Line since user indiates he wants this option */
  249.          if(User_keys.Userflags & USER_SCRNCLR)   User_keys.Userflags ^= USER_SCRNCLR;
  250.         else
  251.          User_keys.Userflags ^= USER_SCRNCLR;   /* clear the bit for linefeeds code */
  252.          REM_BIT(ACS_CLEAR_SCREEN_MSG);
  253.          if(User_keys.Userflags & USER_SCRNCLR) ADD_BIT(ACS_CLEAR_SCREEN_MSG);
  254.          /* redisplay */
  255.          break;
  256.  
  257.        case 10: if(!GET_BIT(ACS_FULLEDIT)) break;
  258.                 User.EditorType +=1; if(User.EditorType>2) User.EditorType=0;
  259.                 break;
  260.         }
  261.     }
  262. }
  263.